home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / m17n / te-rts.mim < prev    next >
Text File  |  2009-04-29  |  12KB  |  547 lines

  1. ;; te-rts.mim -- Telugu input method with RTS method
  2.  
  3. ;; Copyright (C) 2003, 2004, 2005, 2006
  4. ;;   National Institute of Advanced Industrial Science and Technology (AIST)
  5. ;;   Registration Number H15PRO112
  6. ;; Copyright 2005, 2006 Suraj N. Kurapati <skurapat@ucsc.edu>
  7. ;; Copyright 2006 Chaitanya Kamisetty <chaitanya@atc.tcs.co.in>
  8.  
  9.  
  10. ;; This file is part of the m17n contrib; a sub-part of the m17n
  11. ;; library.
  12.  
  13. ;; The m17n library is free software; you can redistribute it and/or
  14. ;; modify it under the terms of the GNU Lesser General Public License
  15. ;; as published by the Free Software Foundation; either version 2.1 of
  16. ;; the License, or (at your option) any later version.
  17.  
  18. ;; The m17n library is distributed in the hope that it will be useful,
  19. ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
  20. ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  21. ;; Lesser General Public License for more details.
  22.  
  23. ;; You should have received a copy of the GNU Lesser General Public
  24. ;; License along with the m17n library; if not, write to the Free
  25. ;; Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  26. ;; Boston, MA 02110-1301, USA.
  27.  
  28.  
  29.  
  30. (input-method te rts)
  31.  
  32. (description "Input method for Telugu script with RTS method.
  33. For the detail of RTS, see the page:
  34.   <http://groups.google.com/groups?selm=Bv0A9M.27B%40rice.edu&output=gplain>.
  35.  
  36. This input method is based upon the Telugu Rice Transliteration
  37. Standard (RTS) specification and its Rice Inverse
  38. Transliterator (RIT) supplement.
  39.  
  40. The original RTS specification was written by Ananda Kishore and
  41. Rama Rao Kanneganti in 1992 and can presently be accessed in the
  42. \"soc.culture.indian.telugu\" newsgroup archives (see
  43. <http://groups.google.com/groups?selm=Bv0A9M.27B\%40rice.edu&output=gplain>).
  44.  
  45. The RIT supplement adds alternative combinations for
  46. transliteration but, in general, does not distract from the
  47. original specification (see
  48. <http://www.teluguworld.org/RIT/rit3.0/manual.html>). Whenever a
  49. supplemental combination conflicts with the original RTS, the RTS
  50. version has precedence and the supplemental combination is
  51. disregarded (such as 'ea' from RIT 3.0).
  52.  
  53. Finally, this input method deviates slightly from the RTS in the
  54. following ways:
  55.  
  56.     (1) The combinations \"\@n\", \"\@2\", \"~c\", and \"~j\"
  57.             yield \"∩┐╜\" because their corresponding glyphs do not
  58.             yet exist in Telugu's Unicode chart.
  59.  
  60.        (2) If it appears at the end of a word, the combination
  61.             \"m\" yields \"α░é\". The user can type \"m&\" to
  62.             bypass this behavior and force \"m\" to yield \"α░«α▒ì\".
  63. ")
  64.  
  65. (title "α░ò")
  66.  
  67. (map
  68.  (starter
  69.   ((S-\ )) ((C-@))    ; m17n stuff
  70.  
  71.   ("a") ("b") ("c") ("d") ("e") ("f") ("g") ("h") ("i") ("j")
  72.   ("k") ("l") ("m") ("n") ("o") ("p") ("r") ("s") ("t") ("u")
  73.   ("v") ("w") ("x") ("y") ("z")
  74.  
  75.   ("A") ("B") ("C") ("D") ("E") ("G") ("H") ("I") ("J") ("K")
  76.   ("L") ("M") ("N") ("O") ("P") ("R") ("S") ("T") ("U") ("V")
  77.   ("W")
  78.  
  79.   ("0") ("1") ("2") ("3") ("4") ("5") ("6") ("7") ("8") ("9")
  80.  
  81.   ("@") ("|") ("~")
  82.  
  83.   ("#") ("_")
  84.  )
  85.  
  86.  
  87.  
  88.  ; these consonants undergo automatic sunna generation
  89.  (consonant
  90.  
  91.   ; row 1
  92.   ("k" "α░òα▒ì")
  93.  
  94.   ("kh" "α░ûα▒ì")
  95.   ("kH" "α░ûα▒ì")
  96.   ("K" "α░ûα▒ì")
  97.   ("Kh" "α░ûα▒ì")
  98.   ("KH" "α░ûα▒ì")
  99.  
  100.   ("g" "α░ùα▒ì")
  101.  
  102.   ("gh" "α░ÿα▒ì")
  103.   ("gH" "α░ÿα▒ì")
  104.   ("G" "α░ÿα▒ì")
  105.   ("Gh" "α░ÿα▒ì")
  106.   ("GH" "α░ÿα▒ì")
  107.  
  108.  
  109.   ; row 2
  110.   ("c" "α░Üα▒ì")
  111.   ("ch" "α░Üα▒ì")
  112.   ("cH" "α░Üα▒ì")
  113.   
  114.   ("~c" "∩┐╜")    ; α░ñα▒ìα░╕ (tsa) allophone of α░Ü (cha)
  115.  
  116.   ("C" "α░¢α▒ì")
  117.   ("Ch" "α░¢α▒ì")
  118.   ("CH" "α░¢α▒ì")
  119.   ("c'" "α░¢α▒ì")    ; from RIT 2.0, 3.0
  120.  
  121.   ("j" "α░£α▒ì")
  122.   ("z" "α░£α▒ì")    ; from RIT 3.0
  123.  
  124.   ("~j" "∩┐╜")    ; α░íα▒ìα░£ (dza) allophone of α░£ (ja)
  125.  
  126.   ("jh" "α░¥α▒ì")
  127.   ("jH" "α░¥α▒ì")
  128.   ("J" "α░¥α▒ì")
  129.   ("Jh" "α░¥α▒ì")
  130.   ("JH" "α░¥α▒ì")
  131.  
  132.  
  133.   ; row 3
  134.   ("T" "α░ƒα▒ì")
  135.   ("t'" "α░ƒα▒ì")
  136.  
  137.   ("Th" "α░áα▒ì")
  138.   ("TH" "α░áα▒ì")
  139.   ("th'" "α░áα▒ì")
  140.   ("tH'" "α░áα▒ì")
  141.  
  142.   ("D" "α░íα▒ì")
  143.   ("d'" "α░íα▒ì")
  144.  
  145.   ("Dh" "α░óα▒ì")
  146.   ("DH" "α░óα▒ì")
  147.   ("dh'" "α░óα▒ì")
  148.   ("dH'" "α░óα▒ì")
  149.  
  150.  
  151.   ; row 4
  152.   ("t" "α░ñα▒ì")
  153.  
  154.   ("th" "α░Ñα▒ì")
  155.   ("tH" "α░Ñα▒ì")
  156.  
  157.   ("d" "α░ªα▒ì")
  158.  
  159.   ("dh" "α░ºα▒ì")
  160.   ("dH" "α░ºα▒ì")
  161.  
  162.  
  163.   ; row 5
  164.   ("p" "α░¬α▒ì")
  165.  
  166.   ("f" "α░½α▒ì")
  167.   ("P" "α░½α▒ì")
  168.   ("ph" "α░½α▒ì")
  169.   ("pH" "α░½α▒ì")
  170.   ("Ph" "α░½α▒ì")
  171.   ("PH" "α░½α▒ì")
  172.  
  173.   ("b" "α░¼α▒ì")
  174.  
  175.   ("bh" "α░¡α▒ì")
  176.   ("bH" "α░¡α▒ì")
  177.   ("B" "α░¡α▒ì")
  178.   ("Bh" "α░¡α▒ì")
  179.   ("BH" "α░¡α▒ì")
  180.  
  181.  
  182.   ; row 6
  183.   ("l" "α░▓α▒ì")
  184.  
  185.   ("v" "α░╡α▒ì")
  186.   ("V" "α░╡α▒ì")    ; from RIT 3.0
  187.   ("w" "α░╡α▒ì")
  188.   ("W" "α░╡α▒ì")    ; from RIT 3.0
  189.  
  190.   ("S" "α░╢α▒ì")
  191.   ("s'" "α░╢α▒ì")    ; from RIT 2.0, 3.0
  192.  
  193.   ("s" "α░╕α▒ì")
  194.  
  195.  
  196.   ("x" "α░òα▒ìα░╖α▒ì")
  197.   ("ksh" "α░òα▒ìα░╖α▒ì")
  198.   ("ksH" "α░òα▒ìα░╖α▒ì")
  199.   ("ks" "α░òα▒ìα░╕α▒ì") ; workaround for inputting "α░òα▒ìα░╕α▒ì"
  200.  
  201.  
  202.   ; misc. compounds
  203.   ("dd'" "α░íα▒ìα░íα▒ì")  ; from RIT 3.0
  204.   ("dd" "α░ªα▒ìα░ªα▒ì")
  205.  
  206.   ("tt'" "α░ƒα▒ìα░ƒα▒ì")  ; from RIT 3.0
  207.   ("tt" "α░ñα▒ìα░ñα▒ì")
  208.  
  209.   ("jn" "α░£α▒ìα░₧α▒ì")
  210.  )
  211.  
  212.  
  213.  
  214.  ; these consonants do NOT undergo automatic sunna generation
  215.  (consonant2
  216.   ("~m" "α░Öα▒ì")
  217.  
  218.   ("~n" "α░₧α▒ì")
  219.  
  220.   ("N" "α░úα▒ì")
  221.   ("nh" "α░úα▒ì")
  222.   ("nH" "α░úα▒ì")
  223.   ("n'" "α░úα▒ì")    ; from RIT 2.0, 3.0
  224.  
  225.   ("n&" "α░¿α▒ì")
  226.  
  227.   ("m&" "α░«α▒ì")
  228.  
  229.   ("y" "α░»α▒ì")
  230.  
  231.   ("r" "α░░α▒ì")
  232.  
  233.   ("sh" "α░╖α▒ì")
  234.   ("sH" "α░╖α▒ì")
  235.   ("Sh" "α░╖α▒ì")    ; from RIT 3.0
  236.   ("SH" "α░╖α▒ì")    ; from RIT 3.0
  237.  
  238.   ("h" "α░╣α▒ì")
  239.   ("H" "α░╣α▒ì")
  240.  
  241.   ("L" "α░│α▒ì")
  242.   ("lh" "α░│α▒ì")
  243.   ("lH" "α░│α▒ì")
  244.   ("Lh" "α░│α▒ì")
  245.   ("LH" "α░│α▒ì")
  246.   ("l'" "α░│α▒ì")    ; from RIT 2.0, 3.0
  247.  
  248.   ("~r" "α░▒α▒ì")
  249.   ("r''" "α░▒α▒ì")    ; from RIT 2.0, 3.0
  250.  )
  251.  
  252.  
  253.  
  254.  ; these consonants are converted into sunna by the automatic sunna generation logic, if they appear inside a word
  255.  (sunna-inside-word
  256.   ("n" "α░¿α▒ì")
  257.  
  258.   ("m" "α░«α▒ì")
  259.  )
  260.  
  261.  
  262.  
  263.  ; these sequences are converted into sunna by the automatic sunna generation logic, if they appear at the end of a word
  264.  (sunna-endof-word
  265.   ((m Tab) "α░é    ")
  266.   ((m Return) "α░é")
  267.  
  268.  
  269.   ; the sequences below, using punctuation marks to denote the end of a word, are generated by the following shell command. keys in [1] the (starter) block, [2] the (independent) block, and [3] those which begin with the 'm' key are intentionally excluded from this command to ensure that they are transliterated normally.
  270.   ; for ch in ' ' '!' '\"' '#' '$' '%' "'" '(' ')' '*' '+' ',' '-' '.' '/' '\\' ':' ';' '<' '=' '>' '?' '[' ']' '_' '`' '{' '}'; do echo "  (\"m${ch}\" \"α░é${ch}\")"; done # exclude '^' '&' '|' '@' '~'
  271.   ("m " "α░é ")
  272.   ("m!" "α░é!")
  273.   ("m\"" "α░é\"")
  274.   ("m#" "α░é#")
  275.   ("m$" "α░é$")
  276.   ("m%" "α░é%")
  277.   ("m'" "α░é'")
  278.   ("m(" "α░é(")
  279.   ("m)" "α░é)")
  280.   ("m*" "α░é*")
  281.   ("m+" "α░é+")
  282.   ("m," "α░é,")
  283.   ("m-" "α░é-")
  284.   ("m." "α░é.")
  285.   ("m/" "α░é/")
  286.   ("m\\" "α░é\\")
  287.   ("m:" "α░é:")
  288.   ("m;" "α░é;")
  289.   ("m<" "α░é<")
  290.   ("m=" "α░é=")
  291.   ("m>" "α░é>")
  292.   ("m?" "α░é?")
  293.   ("m[" "α░é[")
  294.   ("m]" "α░é]")
  295.   ("m_" "α░é_")
  296.   ("m`" "α░é`")
  297.   ("m{" "α░é{")
  298.   ("m}" "α░é}")
  299.  )
  300.  
  301.  
  302.  
  303.  (independent
  304.  
  305.   ; α░àα░Üα▒ìα░Üα▒üα░▓α▒ü (vowels)
  306.   ("a" "α░à")
  307.  
  308.   ("aa" "α░å")
  309.   ("a'" "α░å")
  310.   ("A" "α░å")    ; from RIT 2.0, 3.0
  311.  
  312.   ("i" "α░ç")
  313.  
  314.   ("ee" "α░ê")
  315.   ("ii" "α░ê")
  316.   ("ia" "α░ê")
  317.   ("i'" "α░ê")
  318.   ("I" "α░ê")    ; from RIT 2.0, 3.0
  319.  
  320.   ("u" "α░ë")
  321.  
  322.   ("oo" "α░è")
  323.   ("uu" "α░è")
  324.   ("U" "α░è")
  325.   ("ua" "α░è")
  326.   ("u'" "α░è")
  327.  
  328.   ("R" "α░ï")
  329.   ("r'" "α░ï")    ; from RIT 2.0
  330.  
  331.   ("Ru" "α▒á")
  332.   ("r'u" "α▒á")    ; from RIT 2.0
  333.  
  334.   ("~l" "α░î")
  335.  
  336.   ("~L" "α▒í")
  337.  
  338.   ("e" "α░Ä")
  339.  
  340.   ("ea" "α░Å")
  341.   ("ae" "α░Å")
  342.   ("E" "α░Å")
  343.   ("e'" "α░Å")
  344.  
  345.   ("ai" "α░É")
  346.   ("ei" "α░É")    ; from RIT 3.0
  347.  
  348.   ("o" "α░Æ")
  349.  
  350.   ("oe" "α░ô")
  351.   ("O" "α░ô")
  352.   ("oa" "α░ô")
  353.   ("o'" "α░ô")
  354.  
  355.   ("au" "α░ö")
  356.   ("ou" "α░ö")
  357.   ("ow" "α░ö")    ; from RIT 3.0
  358.  
  359.  
  360.   ; α░àα░éα░òα▒åα░▓α▒ü (numbers)
  361.   ("0" "α▒ª")
  362.   ("1" "α▒º")
  363.   ("2" "α▒¿")
  364.   ("3" "α▒⌐")
  365.   ("4" "α▒¬")
  366.   ("5" "α▒½")
  367.   ("6" "α▒¼")
  368.   ("7" "α▒¡")
  369.   ("8" "α▒«")
  370.   ("9" "α▒»")
  371.  
  372.  
  373.   ; punctuation
  374.   ("|" "αÑñ")    ; from RIT 3.0
  375.   ("||" "αÑÑ")    ; from Yudit
  376.  
  377.  
  378.   ; additional modifiers
  379.   ("M" "α░é")    ; from "internal representation" section of RTS. This combination has been included because it is very widely used in RTS implementations which do not support automatic sunna generation and thus has become the defacto way of manually producing sunna.
  380.  
  381.   ("@M" "α░ü")    ; α░àα░░α▒ìα░ºα░╕α▒üα░¿α▒ìα░¿ (ardhasunna), α░Üα░éα░ªα▒ìα░░ α░¼α░┐α░éα░ªα▒ü (chandra bindu)
  382.   ("@m" "α░ü")    ; from RIT 3.0
  383.  
  384.   ("@h" "α░â")    ; α░╡α░┐α░╕α░░α▒ìα░ù  (visarga)
  385.   ("@H" "α░â")
  386.  
  387.   ("@n" "∩┐╜")    ; α░¿α░òα░░ α░¬α▒èα░▓α▒ìα░▓α▒ü  (nakara-pollu), α░¿α░òα░░ α░╡α░┐α░░α░« (nakara-virama)
  388.   ("@N" "∩┐╜")    ; from RIT 3.0
  389.  
  390.   ("@2" "∩┐╜")    ; α░àα░╡α░ùα▒ìα░░α░╣  (avagraha)
  391.  
  392.   ("^" "α▒ìΓÇî")    ; α░¬α▒èα░▓α▒ìα░▓α▒ü (pollu), α░╡α░┐α░░α░« (virama), halant
  393.  
  394.   ("_" "")  ; ignored according to RTS
  395.  
  396.  
  397.   ; m17n stuff
  398.   ((S-\ ) "ΓÇî")
  399.   ((C-@) "ΓÇì")
  400.  )
  401.  
  402.  
  403.  
  404.  (dependent
  405.   ("a" (delete @-) "")
  406.  
  407.   ("aa" (delete @-) "α░╛")
  408.   ("a'" (delete @-) "α░╛")
  409.   ("A" (delete @-) "α░╛")    ; from RIT 3.0
  410.  
  411.   ("i" (delete @-) "α░┐")
  412.  
  413.   ("ee" (delete @-) "α▒Ç")
  414.   ("ii" (delete @-) "α▒Ç")
  415.   ("ia" (delete @-) "α▒Ç")
  416.   ("i'" (delete @-) "α▒Ç")
  417.   ("I" (delete @-) "α▒Ç")    ; from RIT 3.0
  418.  
  419.   ("u" (delete @-) "α▒ü")
  420.  
  421.   ("oo" (delete @-) "α▒é")
  422.   ("uu" (delete @-) "α▒é")
  423.   ("U" (delete @-) "α▒é")
  424.   ("ua" (delete @-) "α▒é")
  425.   ("u'" (delete @-) "α▒é")
  426.  
  427.   ("R" (delete @-) "α▒â")
  428.   ("r'" (delete @-) "α▒â")    ; from RIT 2.0
  429.  
  430.   ("Ru" (delete @-) "α▒ä")
  431.   ("r'u" (delete @-) "α▒ä")    ; from RIT 2.0
  432.  
  433.   ("~l" (delete @-) "∩┐╝")
  434.  
  435.   ("~L" (delete @-) "∩┐╝")
  436.  
  437.   ("e" (delete @-) "α▒å")
  438.  
  439.   ("ea" (delete @-) "α▒ç")
  440.   ("ae" (delete @-) "α▒ç")
  441.   ("E" (delete @-) "α▒ç")
  442.   ("e'" (delete @-) "α▒ç")
  443.  
  444.   ("ai" (delete @-) "α▒ê")
  445.   ("ei" (delete @-) "α▒ê")    ; from RIT 3.0
  446.  
  447.   ("o" (delete @-) "α▒è")
  448.  
  449.   ("oe" (delete @-) "α▒ï")
  450.   ("O" (delete @-) "α▒ï")
  451.   ("oa" (delete @-) "α▒ï")
  452.   ("o'" (delete @-) "α▒ï")
  453.  
  454.   ("au" (delete @-) "α▒î")
  455.   ("ou" (delete @-) "α▒î")
  456.   ("ow" (delete @-) "α▒î")    ; from RIT 3.0
  457.  
  458.  
  459.   ; additional modifiers
  460.   ("^" (delete @-) "α▒ìΓÇî")    ; α░¬α▒èα░▓α▒ìα░▓α▒ü (pollu), α░╡α░┐α░░α░« (virama), halant
  461.  )
  462.  
  463. (single_hash
  464.   ("#" "")
  465.  )
  466.  
  467.  (triple_hash
  468.   ("###" "#")
  469.  )
  470.  
  471.   (invariant
  472.   ("a" "a" ) ("b" "b" ) ("c" "c" ) ("d" "d" ) ("e" "e") ("f" "f") ("g" "g") ("h" "h") ("i" "i") ("j" "j")
  473.   ("k" "k" ) ("l" "l" ) ("m" "m" ) ("n" "n" ) ("o" "o" ) ("p" "p" ) ("q" "q") ("r" "r" ) ("s" "s" ) ("t" "t" ) ("u" "u" )
  474.   ("v" "v" ) ("w" "w" ) ("x" "x" ) ("y" "y" ) ("z" "z" )
  475.  
  476.   ("A" "A" ) ("B" "B" ) ("C" "C" ) ("D" "D" ) ("E" "E" ) ("F" "F") ("G" "G" ) ("H" "H" ) ("I" "I" ) ("J" "J" ) ("K" "K" )
  477.   ("L" "L" ) ("M" "M" ) ("N" "N" ) ("O" "O" ) ("P" "P" ) ("Q" "Q") ("R" "R" ) ("S" "S" ) ("T" "T" ) ("U" "U" ) ("V" "V" )
  478.   ("W" "W" ) ("X" "X" ) ("Y" "Y" ) ("Z" "Z" )
  479.  
  480.   ("0" "0" ) ("1" "1" ) ("2" "2" ) ("3" "3" ) ("4" "4" ) ("5" "5" ) ("6" "6" ) ("7" "7" ) ("8" "8" ) ("9" "9" )
  481.  
  482.   ("~" "~") ("`" "`") ("!" "!") ("@" "@" ) ("$" "$") ("%" "%") ("^" "^") ("&" "&") ("*" "*") ("(" "(") (")" ")") ("_" "_")
  483.   ("-" "-") ("+" "+") ("=" "=") ("{" "{") ("[" "[") ("}" "}") ("]" "]") ("|" "|" ) ("\\" "\\") (":" ":") (";" ";")
  484.   ("\"" "\"") ("\'" "\'") ("<" "<") ("," ",") (">" ">") ("." ".") ("?" "?") ("/" "/")
  485.  
  486.   (" " " ") ((Tab) ("\t")) ((BackSpace) (undo)) ((Return) ("\n"))
  487.   )
  488.  
  489.  ; m17n stuff
  490.  (return
  491.   ((Return)))
  492.  
  493.  (backspace
  494.   ((BackSpace) (undo)))
  495. )
  496.  
  497.  
  498.  
  499. ; state machine for transliteration
  500. (state
  501.  (init
  502.   (starter (pushback 1) (shift intermediate))
  503.  )
  504.  
  505.  (intermediate
  506.   (consonant (shift second))
  507.   (consonant2 (shift second))
  508.   (sunna-inside-word (shift second-sunna-inside-word))
  509.   (sunna-endof-word (shift init))
  510.   (independent (shift init))
  511.   (single_hash (shift no_transliteration))
  512.   (triple_hash (shift init))
  513.   (backspace)
  514.   (return (shift init))
  515.  )
  516.  
  517.  (second
  518.   (consonant)
  519.   (consonant2)
  520.   (sunna-inside-word (shift second-sunna-inside-word))
  521.   (sunna-endof-word (shift init))
  522.   (dependent (shift init))
  523.   (backspace)
  524.   (return (shift init))
  525.  )
  526.  
  527.  (second-sunna-inside-word
  528.   (t (mark p))
  529.   (consonant (move p) (delete @-) (delete @-) "α░é" (move @>) (shift second))
  530.   (consonant2 (shift second))
  531.   (sunna-inside-word)
  532.   (sunna-endof-word (shift init))
  533.   (dependent (shift init))
  534.   (backspace)
  535.  )
  536.  
  537.  (no_transliteration
  538.   (single_hash (shift init))
  539.   (invariant)
  540.  )
  541. )
  542.  
  543. ;; Local Variables:
  544. ;; coding: utf-8
  545. ;; mode: emacs-lisp
  546. ;; End:
  547.